package com.pi.wms.entity;


import com.fasterxml.jackson.annotation.JsonView;
import com.pi.framework.core.bean.PageResult;
import com.pi.framework.core.model.IdAuditableEntity;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.springframework.data.jpa.datatables.mapping.DataTablesOutput;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;




@Entity
@NoArgsConstructor
@Getter
@Setter
@Table(name = "TWI_INV_XWMS_DETAILS")
public class TwiInventoryXwmsDetails extends IdAuditableEntity {
	private static final long serialVersionUID = 35801209230L;

    @Id
    @GeneratedValue(generator = "SEQ_TWI_INV_XWMS_STORAGE_ID")
    @GenericGenerator(name = "SEQ_TWI_INV_XWMS_STORAGE_ID",strategy = "com.pi.framework.data.FitIdentifierGenerator", parameters = {
            @Parameter(name = "sequence_name", value = "SEQ_TWI_INV_XWMS_STORAGE_ID") })
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "STORAGE_ID")
    private Long id;

    @Column(name = "VERSION")
    private Long version = Long.valueOf(0L);

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "GCLIENT_ID")
    private Long globalClientId;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "CUSTOMER_ID")
    private Long customerId;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "DIVISION_ID")
    private Long divisionId;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "MATERIAL_ID")
    private Long materialId;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "CUSTOMER_CODE")
    private String customerCode;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "MATERIAL_CODE")
    private String materialCode;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "MATERIAL_NAME")
    private String materialName;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "MATERIAL_SPEC")
    private String materialSpec;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "SUPPLIER_CODE")
    private String supplierCode;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "SUPPLIER_NAME")
    private String supplierName;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "WBS_NUM")
    private String wbsNum;

    //原始库存数量
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "STORAGE_QTY")
    private BigDecimal storageQty;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "STORAGE_QTY_EACH")
    private BigDecimal storageQtyEach;

    //码盘数量
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "PAL_QTY")
    private BigDecimal palQty;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "PAL_QTY_EACH")
    private BigDecimal palQtyEach;

    //收货数量
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "RECEIVE_QTY")
    private BigDecimal receiveQty;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "RECEIVE_QTY_EACH")
    private BigDecimal receiveQtyEach;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "UOM_CODE")
    private String uomCode;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "UOM_NAME")
    private String uomName;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR01")
    private Date lotattr01;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR02")
    private Date lotattr02;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR03")
    private Date lotattr03;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR04")
    private Date lotattr04;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR05")
    private String lotattr05;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR06")
    private String lotattr06;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR07")
    private String lotattr07;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR08")
    private String lotattr08;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR09")
    private String lotattr09;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR10")
    private String lotattr10;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR11")
    private String lotattr11;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR12")
    private String lotattr12;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR13")
    private String lotattr13;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR14")
    private String lotattr14;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR15")
    private String lotattr15;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOTATTR16")
    private String lotattr16;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "STORAGE_LOC_CODE")
    private String storageLocCode;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "XWMS_LOT_NUMBER")
    private String xwmsLotNumber;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "XWMS_LOC_CODE")
    private String xwmsLocCode;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "XWMS_RECEIVE_TIME")
    private String xwmsReceiveTime;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "CREATE_SOURCE")
    private String createSource;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "CHECK_STATUS")
    private String checkStatus;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "LOAD_STATUS")
    private String loadStatus;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "UDF01")
    private String udf01;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF02")
    private String udf02;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF03")
    private String udf03;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF04")
    private String udf04;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF05")
    private String udf05;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF06")
    private String udf06;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF07")
    private String udf07;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF08")
    private String udf08;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF09")
    private String udf09;
    
    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class }) 
    @Column(name = "UDF10")
    private String udf10;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "EDITABLE")
    private boolean editable;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "ENABLED")
    private boolean enabled;

    @JsonView(value = { DataTablesOutput.View.class, PageResult.View.class })
    @Column(name = "NOTES")
    private String notes;

}
